home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / answers / comp / ai-faq / genetic / part2 < prev    next >
Text File  |  1994-03-18  |  50KB  |  1,045 lines

  1. Newsgroups: comp.ai.genetic,comp.answers,news.answers
  2. Path: bloom-beacon.mit.edu!hookup!usc!howland.reston.ans.net!EU.net!uknet!cf-cm!cf.cm.ac.uk!David.Beasley
  3. From: David.Beasley@cf.cm.ac.uk (David Beasley)
  4. Subject: FAQ: comp.ai.genetic part 2/6 (A Guide to Frequently Asked Questions)
  5. Message-ID: <part2_764003894@cm.cf.ac.uk>
  6. Followup-To: comp.ai.genetic
  7. Summary: This is part 2 of a <trilogy> entitled "The Hitch-Hiker's Guide to 
  8.          Evolutionary Computation". A periodically published list of 
  9.          Frequently Asked Questions (and their answers) about Evolutionary 
  10.          Algorithms, Life and Everything. It should be read by anyone who 
  11.          whishes to post to the comp.ai.genetic newsgroup, preferably *before* 
  12.          posting.
  13. Originator: David.Beasley@cf.cm.ac.uk (David Beasley)
  14. Sender: David.Beasley@cf.cm.ac.uk (David Beasley)
  15. Supersedes: <part2_757015572@cm.cf.ac.uk>
  16. Organization: University of Wales College of Cardiff, Cardiff, WALES, UK.
  17. References: <part1_764003894@cm.cf.ac.uk>
  18. Date: Fri, 18 Mar 94 15:18:56 GMT
  19. Approved: news-answers-request@MIT.Edu
  20. Expires: 30 Jun 1994 15:18:14 GMT
  21. Lines: 1021
  22. Xref: bloom-beacon.mit.edu comp.ai.genetic:2505 comp.answers:4205 news.answers:16511
  23.  
  24. Archive-name:   ai-faq/genetic/part2
  25. Last-Modified:  3/20/94
  26. Issue:          2.1
  27.  
  28.  
  29. TABLE OF CONTENTS OF PART 2
  30.      Q1: What are Evolutionary Algorithms (EAs)?
  31.      Q1.1: What's a Genetic Algorithm (GA)?
  32.      Q1.2: What's Evolutionary Programming (EP)?
  33.      Q1.3: What's an Evolution Strategy (ES)?
  34.      Q1.4: What's a Classifier System (CFS)?
  35.      Q1.5: What's Genetic Programming (GP)?
  36.  
  37. ----------------------------------------------------------------------
  38.  
  39. Subject: Q1: What are Evolutionary Algorithms (EAs)?
  40.  
  41.      Evolutionary  algorithms  use  computational  models  of evolutionary
  42.      processes as  key  elements  in  the  design  and  implementation  of
  43.      computer-based  problem  solving  systems.  A variety of evolutionary
  44.      computational  models  have  been  proposed.  They  share  a   common
  45.      conceptual  base of simulating the EVOLUTION of INDIVIDUAL structures
  46.      via  processes  of  SELECTION,  MUTATION,  and   REPRODUCTION.    The
  47.      processes  depend  on  the  perceived  PERFORMANCE  of the individual
  48.      structures as defined by an ENVIRONMENT.
  49.  
  50.      More precisely, EAs maintain a POPULATION of structures, that  evolve
  51.      according  to  rules  of  SELECTION  and  other  operators,  that are
  52.      referred to as "search operators", (or GENETIC  OPERATORs),  such  as
  53.      RECOMBINATION  and  MUTATION.   Each  INDIVIDUAL  in  the  population
  54.      receives a measure of it's FITNESS in the ENVIRONMENT.   REPRODUCTION
  55.      focuses  attention  on high fitness individuals, thus exploiting (cf.
  56.      EXPLOITATION) the available fitness information.   Recombination  and
  57.      mutation  perturb those individuals, providing general heuristics for
  58.      EXPLORATION.  Although simplistic from a biologist's viewpoint, these
  59.      algorithms  are  sufficiently  complex to provide robust and powerful
  60.      adaptive search mechanisms.
  61.  
  62.      --- "An Overview of Evolutionary Computation" [ECML93], 442-459.
  63.  
  64.  PSEUDO CODE
  65.      Algorithm EA is
  66.  
  67.       // start with an initial time
  68.       t := 0;
  69.  
  70.       // initialize a usually random population of individuals
  71.       initpopulation P (t);
  72.  
  73.       // evaluate fitness of all initial individuals in population
  74.       evaluate P (t);
  75.  
  76.       // test for termination criterion (time, fitness, etc.)
  77.       while not done do
  78.  
  79.            // increase the time counter
  80.            t := t + 1;
  81.  
  82.            // select sub-population for offspring production
  83.            P' := selectparents P (t);
  84.  
  85.            // recombine the "genes" of selected parents
  86.            recombine P' (t);
  87.  
  88.            // perturb the mated population stochastically
  89.            mutate P' (t);
  90.  
  91.            // evaluate it's new fitness
  92.            evaluate P' (t);
  93.  
  94.            // select the survivors from actual fitness
  95.            P := survive P,P' (t);
  96.       od
  97.      end EA.
  98.  
  99. ------------------------------
  100.  
  101. Subject: Q1.1: What's a Genetic Algorithm (GA)?
  102.  
  103.      The GENETIC ALGORITHM is a model of machine  learning  which  derives
  104.      its behavior from a metaphor of the processes of EVOLUTION in nature.
  105.      This is done by the creation within a  machine  of  a  POPULATION  of
  106.      INDIVIDUALs represented by CHROMOSOMEs, in essence a set of character
  107.      strings that are analogous to the base-4 chromosomes that we  see  in
  108.      our  own  DNA.   The  individuals in the population then go through a
  109.      process of evolution.
  110.  
  111.      We should note that EVOLUTION (in nature or anywhere else) is  not  a
  112.      purposive  or  directed  process.   That  is, there is no evidence to
  113.      support the assertion that  the  goal  of  evolution  is  to  produce
  114.      Mankind.  Indeed,  the  processes  of  nature  seem  to  boil down to
  115.      different INDIVIDUALs competing for  resources  in  the  ENVIRONMENT.
  116.      Some are better than others. Those that are better are more likely to
  117.      survive and propagate their genetic material.
  118.  
  119.      In nature, we see that  the  encoding  for  our  genetic  information
  120.      (GENOME)  is  done in a way that admits asexual REPRODUCTION (such as
  121.      by budding) typically  results  in  OFFSPRING  that  are  genetically
  122.      identical  to the PARENT.  Sexual REPRODUCTION allows the creation of
  123.      genetically radically different offspring that are still of the  same
  124.      general flavor (SPECIES).
  125.  
  126.      At  the  molecular level what occurs (wild oversimplification alert!)
  127.      is that a pair of CHROMOSOMEs bump into one another, exchange  chunks
  128.      of  genetic  information  and  drift apart. This is the RECOMBINATION
  129.      operation, which GA/GPers generally refer to as CROSSOVER because  of
  130.      the  way  that  genetic  material crosses over from one chromosome to
  131.      another.
  132.  
  133.      The CROSSOVER operation happens in an ENVIRONMENT where the SELECTION
  134.      of  who  gets to mate is a function of the FITNESS of the INDIVIDUAL,
  135.      i.e. how good the individual is  at  competing  in  its  environment.
  136.      Some  GENETIC ALGORITHMs use a simple function of the fitness measure
  137.      to  select  individuals  (probabilistically)   to   undergo   genetic
  138.      operations  such  as  crossover  or  REPRODUCTION (the propagation of
  139.      genetic   material   unaltered).    This   is   fitness-proportionate
  140.      selection.   Other  implementations  use  a  model  in  which certain
  141.      randomly selected individuals in a subgroup compete and  the  fittest
  142.      is  selected.  This is called tournament selection and is the form of
  143.      selection we see in nature when stags rut to vie for the privilege of
  144.      mating  with  a herd of hinds. The two processes that most contribute
  145.      to EVOLUTION are crossover and fitness based  selection/reproduction.
  146.  
  147.      As it turns out, there are mathematical proofs that indicate that the
  148.      process of FITNESS  proportionate  REPRODUCTION  is,  in  fact,  near
  149.      optimal in some senses.
  150.  
  151.      MUTATION  also  plays  a  role  in this process, though it is not the
  152.      dominant role that  is  popularly  believed  to  be  the  process  of
  153.      EVOLUTION,  i.e.  random  mutation  and  survival  of the fittest. It
  154.      cannot be stressed too strongly that  the  GENETIC  ALGORITHM  (as  a
  155.      SIMULATION  of  a  genetic  process)  is  not a "random search" for a
  156.      solution to a problem (highly fit INDIVIDUAL).  The genetic algorithm
  157.      uses  stochastic  processes,  but the result is distinctly non-random
  158.      (better than random).
  159.  
  160.      GENETIC ALGORITHMs are used for a  number  of  different  application
  161.      areas.  An  example  of  this  would be multidimensional OPTIMIZATION
  162.      problems in which the character string of the CHROMOSOME can be  used
  163.      to encode the values for the different parameters being optimized.
  164.  
  165.      In  practice,  therefore,  we  can  implement  this  genetic model of
  166.      computation by having arrays of bits or characters to  represent  the
  167.      CHROMOSOMEs.    Simple   bit   manipulation   operations   allow  the
  168.      implementation of CROSSOVER, MUTATION and other operations.  Although
  169.      a  substantial  amount  of  research  has been performed on variable-
  170.      length strings and  other  structures,  the  majority  of  work  with
  171.      GENETIC  ALGORITHMs is focussed on fixed-length character strings. We
  172.      should focus on both this aspect of fixed-lengthness and the need  to
  173.      encode the representation of the solution being sought as a character
  174.      string, since these are  crucial  aspects  that  distinguish  GENETIC
  175.      PROGRAMMING,  which  does  not have a fixed length representation and
  176.      there is typically no encoding of the problem.
  177.  
  178.      When the GENETIC ALGORITHM is implemented it is  usually  done  in  a
  179.      manner that involves the following cycle: Evaluate the FITNESS of all
  180.      of the INDIVIDUALs in the POPULATION.  Create  a  new  population  by
  181.      performing   operations   such  as  CROSSOVER,  fitness-proportionate
  182.      REPRODUCTION and MUTATION on the individuals whose fitness  has  just
  183.      been  measured.  Discard the old population and iterate using the new
  184.      population.
  185.  
  186.      One iteration of this loop is referred to as a GENERATION.  There  is
  187.      no  theoretical  reason for this as an implementation model.  Indeed,
  188.      we do not see this punctuated behavior in POPULATIONs in nature as  a
  189.      whole, but it is a convenient implementation model.
  190.  
  191.      The  first  GENERATION  (generation  0) of this process operates on a
  192.      POPULATION of randomly generated INDIVIDUALs.   From  there  on,  the
  193.      genetic  operations,  in concert with the FITNESS measure, operate to
  194.      improve the population.
  195.  
  196.  PSEUDO CODE
  197.      Algorithm GA is
  198.  
  199.       // start with an initial time
  200.       t := 0;
  201.  
  202.       // initialize a usually random population of individuals
  203.       initpopulation P (t);
  204.  
  205.       // evaluate fitness of all initial individuals of population
  206.       evaluate P (t);
  207.  
  208.       // test for termination criterion (time, fitness, etc.)
  209.       while not done do
  210.  
  211.            // increase the time counter
  212.            t := t + 1;
  213.  
  214.            // select a sub-population for offspring production
  215.            P' := selectparents P (t);
  216.  
  217.            // recombine the "genes" of selected parents
  218.            recombine P' (t);
  219.  
  220.            // perturb the mated population stochastically
  221.            mutate P' (t);
  222.  
  223.            // evaluate it's new fitness
  224.            evaluate P' (t);
  225.  
  226.            // select the survivors from actual fitness
  227.            P := survive P,P' (t);
  228.       od
  229.      end GA.
  230.  
  231. ------------------------------
  232.  
  233. Subject: Q1.2: What's Evolutionary Programming (EP)?
  234.  
  235.   Introduction
  236.      EVOLUTIONARY  PROGRAMMING  is  a  stochastic  OPTIMIZATION   strategy
  237.      similar   to  GENETIC  ALGORITHMs,  but  which  dispenses  with  both
  238.      "genomic" representations and with CROSSOVER as a search strategy.
  239.  
  240.      Like GENETIC ALGORITHMs, the EP technique is  useful  for  optimizing
  241.      problem  solutions  when  other  techniques  like gradient descent or
  242.      direct, analytical discovery  are  not  possible.   Combinatoric  and
  243.      real-valued  FUNCTION  OPTIMIZATION in which the OPTIMIZATION surface
  244.      or "fitness landscape" is "rugged", possessing many  locally  optimal
  245.      solutions, are well-suited for the EP technique.
  246.  
  247.   History
  248.      The  1966 book, "Artificial Intelligence Through Simulated Evolution"
  249.      by  Fogel,  Owens  and  Walsh  is  the   landmark   publication   for
  250.      applications of the EP technique.  In the work, automata were evolved
  251.      to predict symbol strings generated from Markov processes.
  252.  
  253.      In 1992, the First Annual Conference on EVOLUTIONARY PROGRAMMING  was
  254.      held  in  La  Jolla,  CA.   A  second was held in 1993 and a third is
  255.      planned for 1994.  The first conference attracted a diverse group  of
  256.      academic,  commericial  and  military  researchers  engaged  in  both
  257.      developing the theory of the EP technique and in  applying  EP  to  a
  258.      wide range of OPTIMIZATION problems.
  259.  
  260.      Rather  than  list and analyze the sources in detail, I have included
  261.      several fundamental sources below which should serve as good pointers
  262.      to the entire body of work in the field.
  263.  
  264.   The Process
  265.      For  EP, like GAs, there is an underlying assumption that a "fitness"
  266.      landscape can be characterized in terms of variables, and that  there
  267.      is  an optimum solution in terms of those variables.  For example, if
  268.      one were trying to find the shortest path  in  a  Traveling  Salesman
  269.      Problem, each solution would be a path.  The length of the path could
  270.      be expressed as  a  number,  which  would  serve  as  the  solution's
  271.      "fitness".   The  "fitness  landscape"  for  this  problem  could  be
  272.      characterized as a hypersurface proportional to the path lengths in a
  273.      space  of  possible  paths.   The  goal would be to find the globally
  274.      shortest path in that space.
  275.  
  276.      The basic EP method involves 3 steps (Repeat until  a  threshold  for
  277.      iteration is exceeded or an adequate solution is obtained):
  278.  
  279.      (1)  Choose  an initial POPULATION of trial solutions at random.  The
  280.       number of solutions in a population is highly  relevant  to  the
  281.       speed  of OPTIMIZATION, but no definite answers are available as
  282.       to how many solutions are appropriate (other than  >1)  and  how
  283.       many solutions are just wasteful.
  284.  
  285.      (2)  Each  solution  is  replicated  into  a new POPULATION.  Each of
  286.       these  OFFSPRING  solutions   are   mutated   according   to   a
  287.       distribution  of  MUTATION  types, ranging from minor to extreme
  288.       with a continuum of mutation types between.
  289.  
  290.      (3)  Each OFFSPRING solution is assessed by computing  it's  FITNESS.
  291.       The  N  best  solutions,  or  *stochastically*  N  of  the  best
  292.       solutions, are retained for the next POPULATION of solutions.
  293.   EP and GAs
  294.      There are two important ways in which the EP method differs from  the
  295.      GA technique.
  296.  
  297.      First,  there is no constraint on the representation.  The typical GA
  298.      approach involves encoding the  problem  solutions  as  a  string  of
  299.      representative  tokens,  the  "genome".   In  the  EP  approach,  the
  300.      representation follows from the problem.  A  neural  network  can  be
  301.      represented  in  the  same  manner as it is implemented, for example,
  302.      because the MUTATION operation does not demand a linear encoding.
  303.  
  304.      Second, the MUTATION operation simply changes aspects of the solution
  305.      according   to   a   statistical  distribution  which  weights  minor
  306.      variations in OFFSPRING as highly probable and substantial variations
  307.      as  increasingly unlikely as the global optimum is approached.  There
  308.      is a certain tautology here: if the global  optimum  is  not  already
  309.      known,  how can the spread of the mutation operation be damped as the
  310.      solutions approach it?  Several techniques  have  been  proposed  and
  311.      implemented  which  address  this difficulty, the most widely studied
  312.      being the "Meta-Evolutionary" technique  (see  Sources,  below  )  in
  313.      which  the  variance  of  the  mutation  distribution  is  subject to
  314.      mutation by a fixed variance mutation operator and evolves along with
  315.      the solution.
  316.  
  317.   Evolution and Sex: The Argumentative Side of EP
  318.      CROSSOVER   as  an  abstraction  of  sexual  RECOMBINATION  has  been
  319.      questioned on several fronts by the EP community.
  320.  
  321.      The strongest criticisms have been raised  by  Atmar  (1992)  in  his
  322.      introductory papers in the first EP conference proceedings as well as
  323.      his substantially  biological  "On  the  Role  of  Males"  in  Animal
  324.      Behavior (1991).  Atmar criticizes the use of terminology, indicating
  325.      that "crossing-over" is a process that occurs  prior  to  sex  during
  326.      meiotic cell division and its actual role in EVOLUTION is not clearly
  327.      understood.  More than just simple semantics, he argues a reversal of
  328.      the  common  assumption that sex acts as an accelerator of diversity,
  329.      instead casting sex as a mechanism for expunging genetic defects from
  330.      the germline.
  331.  
  332.      Atmar additionally argues that simplistic encodings of parameters for
  333.      OPTIMIZATION in GENETIC ALGORITHMs where one "trait" is equivalent to
  334.      one symbol pattern in the GENOME misrepresents the process of natural
  335.      SELECTION and miscontrues cause and effect.  He  argues  instead  for
  336.      selection  at the phenotypic level.  He characterizes the EP approach
  337.      as being "top down" in that expressed variation at the level  of  the
  338.      PHENOTYPE is selected without concern for the representation at lower
  339.      levels, while the GA approach "celebrates" coding details potentially
  340.      to the exclusion of arriving at optimal solutions.
  341.  
  342.      Several  empirical  evaluations  of  the value of CROSSOVER have been
  343.      reported, all of which suggest that the value  of  crossover  is  not
  344.      clear.
  345.  
  346.      References
  347.  
  348.      Some  references  to  proceedings,  books  and journal articles which
  349.      provide an excellent introduction (by  no  means  extensive)  to  the
  350.      field, include:
  351.  
  352.      Fogel,  LJ,  Owens,  AJ and Walsh, MJ (1966) "Artificial Intelligence
  353.      Through Simulated Evolution," John Wiley and Sons, NY. [primary]
  354.  
  355.      Fogel, DB and Atmar, JW, (eds.)  (1992)  "Proceedings  of  the  First
  356.      Annual   Conference   on   Evolutionary   Programming,"  EVOLUTIONARY
  357.      PROGRAMMING Society, San Diego, CA. [primary]
  358.  
  359.      Atmar, JW (1991) "On the Role of Males," Animal Behavior,  Vol.   41,
  360.      pp. 195-205. [biological]
  361.  
  362.      Ambati, BK, Ambati, J and Mokhtar, MM (1991) "Heuristic Combinatorial
  363.      Optimization by Simulated  Darwinian  Evolution:  A  Polynomial  Time
  364.      Algorithm   for   the   Traveling   Salesman   Problem,"   Biological
  365.      Cybernetics, Vol. 65, pp 31-35. [mathematical]
  366.  
  367.      Sebald, AV, Schlenzig, J and Fogel, DB (1991) "Minimax Design of CMAC
  368.      Neural Controllers Using Evolutionary Programming," Proc. of the 25th
  369.      Asilomar Conf. on Signals, Systems and  Computers,  Chen,  RR  (ed.),
  370.      Pacific Grove, CA, pp 551-555. [practical]
  371.  
  372.  PSEUDO CODE
  373.      Algorithm EP is
  374.  
  375.       // start with an initial time
  376.       t := 0;
  377.  
  378.       // initialize a usually random population of individuals
  379.       initpopulation P (t);
  380.  
  381.       // evaluate fitness of all initial individuals of population
  382.       evaluate P (t);
  383.  
  384.       // test for termination criterion (time, fitness, etc.)
  385.       while not done do
  386.  
  387.            // increase the time counter
  388.            t := t + 1;
  389.  
  390.            // perturb the whole population stochastically
  391.            P' := mutate P (t);
  392.  
  393.            // evaluate it's new fitness
  394.            evaluate P' (t);
  395.  
  396.            // select the survivors from actual fitness
  397.            P := survive P,P' (t);
  398.       od
  399.      end EP.
  400.  
  401.      It  should  be  pointed  out  that EP does not use any CROSSOVER as a
  402.      GENETIC OPERATOR.
  403.  
  404. ------------------------------
  405.  
  406. Subject: Q1.3: What's an Evolution Strategy (ES)?
  407.  
  408.      In 1963 two students at the Technical University of Berlin (TUB)  met
  409.      and  were  soon  to  collaborate  on  experiments which used the wind
  410.      tunnel of the Institute of Flow Engineering.  During the  search  for
  411.      the  optimal  shapes  of bodies in a flow, which was then a matter of
  412.      laborious  intuitive  experimentation,  the  idea  was  conceived  of
  413.      proceeding  strategically.  However, attempts with the coordinate and
  414.      simple gradient strategies (cf Q5) were unsuccessful.   Then  one  of
  415.      the   students,   Ingo  Rechenberg,  now  Professor  of  Bionics  and
  416.      Evolutionary Engineering, hit upon the idea of trying random  changes
  417.      in  the  parameters  defining  the  shape,  following  the example of
  418.      natural  MUTATIONs.   The  EVOLUTION  STRATEGY  was  born.   A  third
  419.      student,  Peter  Bienert, joined them and started the construction of
  420.      an automatic experimenter, which would work according to  the  simple
  421.      rules  of  mutation  and  SELECTION.   The  second student, Hans-Paul
  422.      Schwefel, set about testing the efficiency of the  new  methods  with
  423.      the  help of a Zuse Z23 computer; for there were plenty of objections
  424.      to these "random strategies."
  425.      In spite of an occasional lack of financial support, the Evolutionary
  426.      Engineering  Group  which  had been formed held firmly together. Ingo
  427.      Rechenberg received  his  doctorate  in  1970  (Rechenberg  73).   It
  428.      contains  the  theory  of  the  two membered EVOLUTION STRATEGY and a
  429.      first proposal for a multimembered strategy which in the nomenclature
  430.      introduced  here  is  of the (m+1) type.   In the same year financial
  431.      support from  the  Deutsche  Forschungsgemeinschaft  (DFG,  Germany's
  432.      National Science Foundation) enabled the work, that was concluded, at
  433.      least temporarily, in 1974 with the thesis  "Evolutionsstrategie  und
  434.      numerische Optimierung" (Schwefel 77).
  435.  
  436.      Thus,   EVOLUTION   STRATEGIEs   were  invented  to  solve  technical
  437.      OPTIMIZATION  problems  (TOPs)  like  e.g.  constructing  an  optimal
  438.      flashing  nozzle,  and  until  recently  ES  were only known to civil
  439.      engineering folks, as an alternative to standard solutions.   Usually
  440.      no  closed  form  analytical objective function is available for TOPs
  441.      and  hence,  no  applicable  optimization  method  exists,  but   the
  442.      engineer's intuition.
  443.  
  444.      The  first  attempts  to imitate principles of organic EVOLUTION on a
  445.      computer still resembled the iterative OPTIMIZATION methods known  up
  446.      to  that  time  (cf  Q5):   In a two-membered or (1+1) ES, one PARENT
  447.      generates  one  OFFSPRING  per  GENERATION   by   applying   NORMALLY
  448.      DISTRIBUTED  MUTATIONs, i.e. smaller steps occur more likely than big
  449.      ones, until a child performs better than its ancestor and  takes  its
  450.      place.  Because  of  this  simple  structure, theoretical results for
  451.      STEPSIZE control and CONVERGENCE VELOCITY could be derived. The ratio
  452.      between  successful  and  all  mutations  should come to 1/5: the so-
  453.      called 1/5 SUCCESS RULE was discovered. This first  algorithm,  using
  454.      mutation  only,  has  then  been  enhanced  to a (m+1) strategy which
  455.      incorporated RECOMBINATION due  to  several,  i.e.  m  parents  being
  456.      available.  The  mutation  scheme  and the exogenous stepsize control
  457.      were taken across unchanged from  (1+1) ESs.
  458.  
  459.      Schwefel later generalized these strategies to the  multimembered  ES
  460.      now  denoted  by  (m+l)  and (m,l) which imitates the following basic
  461.      principles  of  organic  EVOLUTION:  a  POPULATION,  leading  to  the
  462.      possibility   of  RECOMBINATION  with  random  mating,  MUTATION  and
  463.      SELECTION.  These strategies  are  termed  PLUS  STRATEGY  and  COMMA
  464.      STRATEGY,  respectively: in the plus case, the parental GENERATION is
  465.      taken into account during selection, while in the comma case only the
  466.      OFFSPRING  undergoes selection, and the PARENTs die off. m (usually a
  467.      lowercase mu, denotes the population size, and l, usually a lowercase
  468.      lambda denotes the number of offspring generated per generation).  Or
  469.      to put  it  in  an  utterly  insignificant  and  hopelessly  outdated
  470.      language:
  471.  
  472.       (define (Evolution-strategy population)
  473.         (if (terminate? population)
  474.           population
  475.           (evolution-strategy
  476.         (select
  477.           (cond (plus-strategy?
  478.               (union (mutate
  479.                    (recombine population))
  480.                  population))
  481.             (comma-strategy?
  482.               (mutate
  483.                 (recombine population))))))))
  484.  
  485.      However,  dealing  with ES is sometimes seen as "strong tobacco," for
  486.      it takes a decent amount of probability theory and applied STATISTICS
  487.      to understand the inner workings of an ES, while it navigates through
  488.      the  hyperspace  of  the  usually  n-dimensional  problem  space,  by
  489.      throwing hyperelipses into the deep...
  490.  
  491.      Luckily,  this  medium  doesn't allow for much mathematical ballyhoo;
  492.      the author therefore has to come up with  a  simple  but  brilliantly
  493.      intriguing  explanation to save the reader from falling asleep during
  494.      the rest of this section, so here we go:
  495.  
  496.      Imagine a black box. A large black box. As large as, say for example,
  497.      a Coca-Cola vending machine. Now, [..] (to be continued)
  498.  
  499.      A  single  INDIVIDUAL of the ES' POPULATION consists of the following
  500.      GENOTYPE representing a point in the SEARCH SPACE:
  501.  
  502.      OBJECT VARIABLES
  503.       Real-valued x_i have to be tuned by RECOMBINATION  and  MUTATION
  504.       such  that  an  objective  function  reaches its global optimum.
  505.       Referring  to  the  metaphor  mentioned  previously,   the   x_i
  506.       represent the regulators of the alien Coka-Cola vending machine.
  507.  
  508.      STRATEGY VARIABLEs
  509.       Real-valued s_i (usually denoted by a lowercase sigma)  or  mean
  510.       STEPSIZEs  determine  the  mutability of the x_i. They represent
  511.       the STANDARD DEVIATION of a  (0, s_i) GAUSSIAN DISTRIBUTION (GD)
  512.       being  added  to  each  x_i  as an undirected MUTATION.  With an
  513.       "expectancy value" of 0  the  PARENTs  will  produce  OFFSPRINGs
  514.       similar  to  themselves  on average. In order to make a doubling
  515.       and a halving of a stepsize equally  probable,  the  s_i  mutate
  516.       log-normally,  distributed,  i.e.   exp(GD),  from GENERATION to
  517.       generation.   These  stepsizes  hide  the  internal  model   the
  518.       POPULATION  has  made of its ENVIRONMENT, i.e. a SELF-ADAPTATION
  519.       of the stepsizes has replaced the exogenous control of the (1+1)
  520.       ES.
  521.  
  522.       This  concept  works  because  SELECTION sooner or later prefers
  523.       those INDIVIDUALs having built a good  model  of  the  objective
  524.       function,  thus  producing  better  OFFSPRING.   Hence, learning
  525.       takes place on two levels: (1) at the genotypic, i.e. the object
  526.       and  STRATEGY  VARIABLE  level  and (2) at the phenotypic level,
  527.       i.e. the FITNESS level.
  528.  
  529.       Depending  on  an  individual's  x_i,  the  resulting  objective
  530.       function  value  f(x),  where  x denotes the vector of objective
  531.       variables, serves as the PHENOTYPE (FITNESS)  in  the  SELECTION
  532.       step.  In  a  PLUS STRATEGY, the m best of all (m+l) INDIVIDUALs
  533.       survive to become the PARENTs of the next GENERATION.  Using the
  534.       comma variant, selection takes place only among the l OFFSPRING.
  535.       The  second  scheme  is  more  realistic  and   therefore   more
  536.       successful,  because  no  individual  may survive forever, which
  537.       could at least  theoretically  occur  using  the  plus  variant.
  538.       Untypical for conventional OPTIMIZATION algorithms and lavish at
  539.       first   sight,   a   COMMA   STRATEGY   allowing    intermediate
  540.       deterioration  performs  better!  Only  by forgetting highly fit
  541.       individuals can a permanent adaptation  of  the  STEPSIZEs  take
  542.       place  and avoid long stagnation phases due to misadapted s_i's.
  543.       This means that these individuals have built an  internal  model
  544.       that  is  no  longer  appropriate for further progress, and thus
  545.       should better be discarded.
  546.  
  547.       By  choosing  a  certain  ratio  m/l,  one  can  determine   the
  548.       convergence  property  of the EVOLUTION STRATEGY: If one wants a
  549.       fast, but local convergence, one  should  choose  a  small  HARD
  550.       SELECTION,  ratio,  e.g.  (5,100),  but  looking  for the global
  551.       optimum, one should favour a softer SELECTION (15,100).
  552.  
  553.       SELF-ADAPTATION within  ESs  depends  on  the  following  agents
  554.       (Schwefel 87):
  555.  
  556.      Randomness:
  557.       One cannot model MUTATION as a purely random process. This would
  558.       mean that a child is completely independent of its PARENTs.
  559.  
  560.      POPULATION
  561.       size: The POPULATION has to be sufficiently large. Not only  the
  562.       current  best  should be allowed to reproduce, but a set of good
  563.       INDIVIDUALs.   Biologists  have  coined  the   term   "requisite
  564.       variety"  to  mean  the  genetic  variety necessary to prevent a
  565.       SPECIES  from  becoming  poorer  and  poorer   genetically   and
  566.       eventually dying out.
  567.  
  568.      COOPERATION:
  569.       In  order  to  exploit  the effects of a POPULATION (m > 1), the
  570.       INDIVIDUALs should recombine their knowledge with that of others
  571.       (cooperate)   because   one   cannot  expect  the  knowledge  to
  572.       accumulate in the best individual only.
  573.  
  574.      Deterioration:
  575.       In order to allow better internal models (STEPSIZEs) to  provide
  576.       better  progress  in the future, one should accept deterioration
  577.       from one GENERATION to the next. A limited life-span  in  nature
  578.       is not a sign of failure, but an important means of preventing a
  579.       SPECIES from freezing genetically.
  580.  
  581.       ESs prove to be successful  when  compared  to  other  iterative
  582.       methods  on a large number of test problems (Schwefel 77).  They
  583.       are adaptable to nearly all sorts of problems  in  OPTIMIZATION,
  584.       because  they  need  very  little information about the problem,
  585.       esp. no derivatives of the objective function.  For  a  list  of
  586.       some  300 applications of EAs, see the SyS-2/92 report (cf Q14).
  587.       ESs  are  capable  of  solving  high  dimensional,   multimodal,
  588.       nonlinear   problems   subject   to   linear   and/or  nonlinear
  589.       constraints.  The objective  function  can  also,  e.g.  be  the
  590.       result of a SIMULATION, it does not have to be given in a closed
  591.       form.  This also holds for the constraints which  may  represent
  592.       the  outcome  of,  e.g. a finite elements method (FEM). ESs have
  593.       been adapted to VECTOR OPTIMIZATION problems (Kursawe  92),  and
  594.       they can also serve as a heuristic for NP-complete combinatorial
  595.       problems like the TRAVELLING SALESMAN PROBLEM or problems with a
  596.       noisy or changing response surface.
  597.  
  598.       References
  599.  
  600.       Kursawe,   F.   (1992)   "   Evolution   strategies  for  vector
  601.       optimization", Taipei, National Chiao Tung University,  187-193.
  602.  
  603.       Kursawe,  F.  (1994)  "  Evolution  strategies: Simple models of
  604.       natural processes?", Revue Internationale de Systemique,  France
  605.       (to appear).
  606.  
  607.       Rechenberg,    I.   (1973)   "Evolutionsstrategie:   Optimierung
  608.       technischer Systeme nach Prinzipien der biologischen Evolution",
  609.       Stuttgart: Fromman-Holzboog.
  610.  
  611.       Schwefel,    H.-P.    (1977)    "Numerische    Optimierung   von
  612.       Computermodellen  mittels   der   Evolutionsstrategie",   Basel:
  613.       Birkhaeuser.
  614.  
  615.       Schwefel,  H.-P.  (1987)  "Collective Phaenomena in Evolutionary
  616.       Systems", 31st Annu.  Meet.  Inter'l  Soc.  for  General  System
  617.       Research, Budapest, 1025-1033.
  618.  
  619. ------------------------------
  620.  
  621. Subject: Q1.4: What's a Classifier System (CFS)?
  622.  
  623.  The name of the Game
  624.      First,  a word on naming conventions is due, for no other paradigm of
  625.      EC has undergone more changes to  it's  name  space  than  this  one.
  626.      Initially,  Holland  called his cognitive models "Classifier Systems"
  627.      abbrv. with CS, and sometimes CFS, as can be found in [GOLD89].
  628.  
  629.      Whence Riolo came into play in 1986 and Holland added a reinforcement
  630.      component to the overall design of a CFS, that emphasized its ability
  631.      to learn. So, the word "learning" was prepended to the name, to make:
  632.      "Learning  Classifier Systems" (abbrv. to LCS).  On October 6-9, 1992
  633.      the "1st Inter'l Workshop on Learning Classifier Systems" took  place
  634.      at  the  NASA  Johnson  Space Center, Houston, TX.  A summary of this
  635.      "summit" of all leading researchers in LCS can  be  found  on  ENCORE
  636.      (See Q15.3) in file CFS/papers/lcs92.ps.gz
  637.  
  638.      Today, the story continues, LCSs are sometimes subsumed under a "new"
  639.      machine  learning   paradigm   called   "Evolutionary   Reinforcement
  640.      Learning" or ERL for short, incorporating LCSs, "Q-Learning", devised
  641.      by Watkins (1989), and a paradigm of the same name, devised by Ackley
  642.      and Littman [ALIFEIII].
  643.  
  644.  On Schema Processors and ANIMATS
  645.      So,  to  get  back  to the question above, "What are CFSs?", we first
  646.      might answer, "Well, there  are  many  interpretations  of  Holland's
  647.      ideas...what do you like to know in particular?"  And then we'd start
  648.      with a recitation from [HOLLAND75,92], and  explain  all  the  SCHEMA
  649.      processors,  the  broadcast  language, etc.  But, we will take a more
  650.      comprehensive,  and  intuitive  way  to  understand  what  CLASSIFIER
  651.      SYSTEMs are all about.
  652.  
  653.      The easiest road to explore the very nature of CLASSIFIER SYSTEMs, is
  654.      to take the animat (ANIMAl + ROBOT = ANIMAT) "lane" devised by Booker
  655.      (1982)  and  later  studied  extensively  by  Wilson (1985), who also
  656.      coined the term for this approach. Work continues on animats  but  is
  657.      often   regarded   as   ARTIFICIAL   LIFE  rather  than  EVOLUTIONARY
  658.      COMPUTATION.  This thread of research has  even  its  own  conference
  659.      series:  "Simulation  of Adaptive Behavior (SAB)" (cf Q12), including
  660.      other  notions  from  machine   learning,   connectionist   learning,
  661.      evolutionary robotics, etc.  [NB: the latter is obvious, if an animat
  662.      lives in a digital microcosm, it can be put into the  real  world  by
  663.      implantation   into   an   autonomous   robot   vehicle,   that   has
  664.      sensors/detectors  (camera  eyes,  whiskers,  etc.)   and   effectors
  665.      (wheels,  robot  arms,  etc.);  so  all  that's  needed is to use our
  666.      algorithm as the "brain" of this  vehicle,  connecting  the  hardware
  667.      parts  with the software learning component.  For a fascinating intro
  668.      to the field see, e.g. Braitenberg (1984)]
  669.  
  670.      CLASSIFIER SYSTEMs,  however,  are  yet  another  OFFSPRING  of  John
  671.      Holland's  aforementioned  book,  and can be seen as one of the early
  672.      applications of GAs, for CFSs  use  this  evolutionary  algorithm  to
  673.      adapt  their  behavior toward a changing ENVIRONMENT, as is explained
  674.      below in greater detail.
  675.  
  676.      Holland envisioned a cognitive  system  capable  of  classifying  the
  677.      goings  on  in  its ENVIRONMENT, and then reacting to these goings on
  678.      appropriately. So what is needed to build such a  system?  Obviously,
  679.      we  need (1) an environment; (2) receptors that tell our system about
  680.      the goings on; (3) effectors, that  let  our  system  manipulate  its
  681.      environment; and (4) the system itself, conveniently a "black box" in
  682.      this first approach, that has (2) and (3) attached to it, and "lives"
  683.      in (1).
  684.  
  685.      In  the  animat  approach,  (1)  usually  is  an artificially created
  686.      digital world, e.g. in Booker's Gofer system, a  2  dimensional  grid
  687.      that  contains "food" and "poison".  And the Gofer itself, that walks
  688.      across this grid and tries (a) to learn to distinguish between  these
  689.      two items, and (b) survive well fed.
  690.  
  691.      Much  the  same  for  Wilson's  animat, called "*". Yes, it's just an
  692.      asterisk, and a "Kafka-esque naming policy" is one of the sign  posts
  693.      of  the  whole  field;  e.g.  the first implementation by Holland and
  694.      Reitmann 1978 was called CS-1, (cognitive system  1);  Smith's  Poker
  695.      player  LS-1  (1980)  followed  this  "convention".  Riolo's 1988 LCS
  696.      implementations on top of his CFS-C library  (cf  Q20),  were  dubbed
  697.      FSW-1 (Finite State World 1), and LETSEQ-1 (LETter SEQuence predictor
  698.      1).
  699.  
  700.      So from the latter paragraph we can  conclude  that  ENVIRONMENT  can
  701.      also  mean something completely different (e.g. an infinite stream of
  702.      letters, time serieses,  etc.)  than  in  the  animat  approach,  but
  703.      anyway; we'll stick to it, and go on.
  704.  
  705.      Imagine  a  very  simple  animat,  e.g. a simplified model of a frog.
  706.      Now, we know that frogs live in  (a)  Muppet  Shows,  or  (b)  little
  707.      ponds;  so  we  chose the latter as our demo ENVIRONMENT (1); and the
  708.      former for a non-Kafka-esque name of  our  model,  so  let's  dub  it
  709.      "Kermit".
  710.  
  711.      Kermit  has eyes, i.e. sensorial input detectors (2); hands and legs,
  712.      i.e.   environment-manipulating  effectors  (3);  is   a   spicy-fly-
  713.      detecting-and-eating  device,  i.e.  a  frog (4); so we got all the 4
  714.      pieces needed.
  715.  
  716.  Inside the Black Box
  717.      The most primitive "black box" we can think of is a computer.  It has
  718.      inputs  (2), and outputs (3), and a message passing system inbetween,
  719.      that converts (i.e., computes), certain input  messages  into  output
  720.      messages,  according  to a set of rules, usually called the "program"
  721.      of that computer.  From the theory of computer science, we now borrow
  722.      the  simplest  of  all  program  structures, that is something called
  723.      "production system" or PS for short.  A  PS  has  been  shown  to  be
  724.      computationally  complete  by Post (1943), that's why it is sometimes
  725.      called a "Post System", and later  by  Minsky  (1967).   Although  it
  726.      merely consists of a set of if-then rules, it still resembles a full-
  727.      fledged computer.
  728.  
  729.      We now term a single "if-then" rule  a  "classifier",  and  choose  a
  730.      representation that makes it easy to manipulate these, for example by
  731.      encoding  them  into  binary  strings.   We  then  term  the  set  of
  732.      classifiers,  a  "classifier population", and immediately know how to
  733.      breed new rules for our  system:  just  use  a  GA  to  generate  new
  734.      rules/classifiers from the current POPULATION!
  735.  
  736.      All  that's  left  are  the  messages floating through the black box.
  737.      They should also be simple strings of zeroes and ones, and are to  be
  738.      kept in a data structure, we call "the message list".
  739.  
  740.      With  all  this  given, we can imagine the goings on inside the black
  741.      box as follows: The input interface (2) generates messages, i.e., 0/1
  742.      strings,  that  are  written on the message list. Then these messages
  743.      are matched against the condition-part of all  classifiers,  to  find
  744.      out  which  actions  are  to  be triggered.  The message list is then
  745.      emptied, and the  encoded  actions,  themselves  just  messages,  are
  746.      posted  to  the  message list.  Then, the output interface (3) checks
  747.      the message list for messages concerning the effectors. And the cycle
  748.      restarts.
  749.  
  750.      Note, that it is possible in this set-up to have "internal messages",
  751.      because the message list is not emptied after (3) has checked;  thus,
  752.      the  input  interface messages are added to the initially empty list.
  753.      (cf Algorithm CFS, LCS below)
  754.  
  755.      The general idea of the CFS is to  start  from  scratch,  i.e.,  from
  756.      tabula  rasa  (without  any  knowledge)  using  a  randomly generated
  757.      classifier POPULATION, and  let  the  system  learn  its  program  by
  758.      induction, (cf Holland et al. 1986), this reduces the input stream to
  759.      recurrent input patterns, that must be repeated over and over  again,
  760.      to  enable  the  animat to classify its current situation/context and
  761.      react on the goings on appropriately.
  762.  
  763.  What does it need to be a frog?
  764.      Let's take a look at the behavior emitted by Kermit. It lives in  its
  765.      digital  microwilderness  where  it moves around randomly.  [NB: This
  766.      seemingly "random" behavior is not that random at all;  for  more  on
  767.      instinctive,  i.e.,  innate  behavior  of non-artificial animals see,
  768.      e.g.  Tinbergen (1951)]
  769.  
  770.      Whenever a small flying object appears, that has no  stripes,  Kermit
  771.      should  eat it, because it's very likely a spicy fly, or other flying
  772.      insect.  If it has stripes, the insect is better left alone,  because
  773.      Kermit had better not bother with wasps, hornets, or bees.  If Kermit
  774.      encounters a large, looming object, it immediately uses its effectors
  775.      to jump away, as far as possible.
  776.  
  777.      So,  part  of  these behavior patterns within the "pond world", in AI
  778.      sometimes called a "frame," from traditional knowledge representation
  779.      techniques, Rich (1983), can be expressed in a set of "if <condition>
  780.      then <action>" rules, as follows:
  781.  
  782.       IF small, flying object to the left THEN send @
  783.       IF small, flying object to the right THEN send %
  784.       IF small, flying object centered THEN send $
  785.       IF large, looming object THEN send !
  786.       IF no large, looming object THEN send *
  787.       IF * and @ THEN move head 15 degrees left
  788.       IF * and % THEN move head 15 degrees right
  789.       IF * and $ THEN move in direction head pointing
  790.       IF ! THEN move rapidly away from direction head pointing
  791.  
  792.      Now, this set of rules has to be encoded for use within a  CLASSIFIER
  793.      SYSTEM.   A  possible encoding of the above rule set in CFS-C (Riolo)
  794.      classifier  terminology.  The  condition   part   consists   of   two
  795.      conditions,  that  are  combined with a logical AND, thus must be met
  796.      both to trigger the associated action. This  structure  needs  a  NOT
  797.      operation,  (so  we  get NAND, and know from hardware design, that we
  798.      can build any computer solely with NANDs), in CFS-C this  is  denoted
  799.      by the `~' prefix character (rule #5).
  800.  
  801.       IF             THEN
  802.        0000,  00 00  00 00
  803.        0000,  00 01  00 01
  804.        0000,  00 10  00 10
  805.        1111,  01 ##  11 11
  806.       ~1111,  01 ##  10 00
  807.        1000,  00 00  01 00
  808.        1000,  00 01  01 01
  809.        1000,  00 10  01 10
  810.        1111,  ## ##  01 11
  811.  
  812.      Obviously,  string `0000' denotes small, and `00' in the fist part of
  813.      the second column, denotes flying.  The last two bits  of  column  #2
  814.      encode  the  direction  of  the  object approaching, where `00' means
  815.      left, `01' means right, etc.
  816.  
  817.      In rule #4 a the "don't care symbol" `#' is used,  that  matches  `1'
  818.      and  `0',  i.e.,  the  position  of  the  large,  looming  object, is
  819.      completely  arbitrary.  A  simple  fact,  that  can   save   Kermit's
  820.      (artificial) life.
  821.  PSEUDO CODE (Non-Learning CFS)
  822.      Algorithm CFS is
  823.  
  824.       // start with an initial time
  825.       t := 0;
  826.  
  827.       // an initially empty message list
  828.       initMessageList ML (t);
  829.  
  830.       // and a randomly generated population of classifiers
  831.       initClassifierPopulation P (t);
  832.  
  833.       // test for cycle termination criterion (time, fitness, etc.)
  834.       while not done do
  835.  
  836.            // increase the time counter
  837.            t := t + 1;
  838.  
  839.            // 1. detectors check whether input messages are present
  840.            ML := readDetectors (t);
  841.  
  842.            // 2. compare ML to the classifiers and save matches
  843.            ML' := matchClassifiers ML,P (t);
  844.  
  845.            // 3. process new messages through output interface
  846.            ML := sendEffectors ML' (t);
  847.       od
  848.      end CFS.
  849.  
  850.      To  convert the previous, non-learning CFS into a learning CLASSIFIER
  851.      SYSTEM, LCS, as has been proposed in Holland  (1986),  it  takes  two
  852.      steps:
  853.  
  854.      (1)   the  major  cycle has to be changed such that the activation of
  855.        each classifier depends on some additional parameter, that  can
  856.        be  modified as a result of experience, i.e. reinforcement from
  857.        the ENVIRONMENT;
  858.  
  859.      (2)   and/or change  the  contents  of  the  classifier  list,  i.e.,
  860.        generate   new   classifiers/rules,  by  removing,  adding,  or
  861.        combining condition/action-parts of existing classifiers.
  862.  
  863.        The algorithm thus changes accordingly:
  864.  
  865.  PSEUDO CODE (Learning CFS)
  866.      Algorithm LCS is
  867.  
  868.       // start with an initial time
  869.       t := 0;
  870.  
  871.       // an initially empty message list
  872.       initMessageList ML (t);
  873.  
  874.       // and a randomly generated population of classifiers
  875.       initClassifierPopulation P (t);
  876.  
  877.       // test for cycle termination criterion (time, fitness, etc.)
  878.       while not done do
  879.  
  880.            // increase the time counter
  881.            t := t + 1;
  882.  
  883.            // 1. detectors check whether input messages are present
  884.            ML := readDetectors (t);
  885.  
  886.            // 2. compare ML to the classifiers and save matches
  887.            ML' := matchClassifiers ML,P (t);
  888.  
  889.            // 3. highest bidding classifier(s) collected in ML' wins the
  890.            // "race" and post the(ir) message(s)
  891.            ML' := selectMatchingClassifiers ML',P (t);
  892.  
  893.            // 4. tax bidding classifiers, reduce their strength
  894.            ML' := taxPostingClassifiers ML',P (t);
  895.  
  896.            // 5. effectors check new message list for output msgs
  897.            ML := sendEffectors ML' (t);
  898.  
  899.            // 6. receive payoff from environment (REINFORCEMENT)
  900.            C := receivePayoff (t);
  901.  
  902.            // 7. distribute payoff/credit to classifiers (e.g. BBA)
  903.            P' := distributeCredit C,P (t);
  904.  
  905.            // 8. Eventually (depending on t), an EA (usually a GA) is
  906.            // applied to the classifier population
  907.            if criterion then
  908.             P := generateNewRules P' (t);
  909.            else
  910.             P := P'
  911.       od
  912.      end LCS.
  913.  
  914.  What's the problem with CFSs?
  915.      Just to list the currently known problems that come with CFSs,  would
  916.      take  some  additional  pages; therefore only some interesting papers
  917.      dealing with unresolved riddles are listed; probably the  best  paper
  918.      containing  most  of  these  is the aforementioned summary of the LCS
  919.      Workshop:
  920.  
  921.      Smith, R.E. (1992) "A report on the first Inter'l Workshop  on  LCSs"
  922.      avail. from ENCORE (See Q15.3) in file CFS/papers/lcs92.ps.gz
  923.  
  924.      Other noteworthy critiques on LCSs include:
  925.  
  926.      Wilson,  S.W.  (1987)  "Classifier  Systems  and  the Animat Problem"
  927.      Machine Learning, 2.
  928.  
  929.      Wilson, S.W. (1988) "Bid Competition  and  Specificity  Reconsidered"
  930.      Complex Systems, 2(5):705-723.
  931.  
  932.      Wilson, S.W. & Goldberg, D.E. (1989) "A critical review of classifier
  933.      systems" [ICGA89], 244-255.
  934.  
  935.      Goldberg, D.E., Horn, J. & Deb, K. (1992) "What makes a problem  hard
  936.      for  a  classifier system?"  (containing the Goldberg citation below)
  937.      is   also   available   from   ENCORE    (See    Q15.3)    in    file
  938.      CFS/papers/lcs92-2.ps.gz
  939.  
  940.      Dorigo,  M.  (1993)  "Genetic  and  Non-genetic Operators in ALECSYS"
  941.      EVOLUTIONARY COMPUTATION, 1(2):151-164.  The  technical  report,  the
  942.      journal article is based on is avail. from ENCORE (See Q15.3) in file
  943.      CFS/papers/icsi92.ps.gz
  944.  
  945.      Smith, R.E. Forrest,  S.  &  Perelson,  A.S.  (1993)  "Searching  for
  946.      Diverse,    Cooperative    POPULATIONs   with   Genetic   Algorithms"
  947.      EVOLUTIONARY COMPUTATION, 1(2):127-149.
  948.  
  949.  Conclusions?
  950.      Generally speaking:
  951.       "There's much to do in CFS research!"
  952.  
  953.      No other notion of EC provides more space to explore and if  you  are
  954.      interested  in  a  PhD  in the field, you might want to take a closer
  955.      look at CFS.  However, be warned!,  to  quote  Goldberg:  "classifier
  956.      systems   are   a  quagmire---a  glorious,  wondrous,  and  inventing
  957.      quagmire, but a quagmire nonetheless."
  958.  
  959.      References
  960.  
  961.      Booker, L.B. (1982) "Intelligent behavior as an adaption to the  task
  962.      environment"  PhD Dissertation, Univ. of Michigan, Logic of Computers
  963.      Group, Ann Arbor, MI.
  964.  
  965.      Braitenberg,  V.   (1984)   "Vehicles:   Experiments   in   Synthetic
  966.      Psychology" Boston, MA: MIT Press.
  967.  
  968.      Holland,  J.H.  (1986)  "Escaping  Brittleness:  The possibilities of
  969.      general-purpose learning algorithms applied  to  parallel  rule-based
  970.      systems".  In:  R.S. Michalski, J.G. Carbonell & T.M. Mitchell (eds),
  971.      Machine  Learning:  An  ARTIFICIAL  INTELLIGENCE  approach,  Vol  II,
  972.      593-623, Los Altos, CA: Morgan Kaufman.
  973.  
  974.      Holland,  J.H.,  et  al.  (1986)  "Induction: Processes of Inference,
  975.      Learning, and Discovery", Cambridge, MA: MIT Press.
  976.  
  977.      Holland, J.H. (1992) "Adaptation in natural and  artificial  systems"
  978.      Boston, MA: MIT Press.
  979.  
  980.      Holland,  J.H.  &  Reitman,  J.S.  (1978) "Cognitive Systems based on
  981.      Adaptive Algorithms" In D.A. Waterman & F.Hayes-Roth, (eds)  Pattern-
  982.      directed inference systems. NY: Academic Press.
  983.  
  984.      Minsky,   M.L.   (1961)   "Steps   toward   Artificial  Intelligence"
  985.      Proceedings IRE, 49, 8-30. Reprinted in E.A. Feigenbaum & J.  Feldman
  986.      (eds) Computers and Thought, 406-450, NY: McGraw-Hill, 1963.
  987.  
  988.      Minsky,  M.L.  (1967)  "Computation:  Finite  and  Infinite Machines"
  989.      Englewood Cliffs, NJ: Prentice-Hall.
  990.  
  991.      Post, E.L. (1943) "Formal reductions  of  the  general  combinatorial
  992.      decision problem" American Journal of Mathematics, 65, 197-268.
  993.  
  994.      Rich, E. (1983) "Artificial Intelligence" NY: McGraw-Hill.
  995.  
  996.      Tinbergen,  N. (1951) "The Study of Instinct" NY: Oxford Univ. Press.
  997.  
  998.      Watkins, C. (1989) "Learning from Delayed Rewards" PhD  Dissertation,
  999.      Department of Psychology, Cambridge Univ., UK.
  1000.  
  1001.      Wilson,  S.W.  (1985)  "Knowledge  growth in an artificial animal" in
  1002.      [ICGA85], 16-23.
  1003.  
  1004. ------------------------------
  1005.  
  1006. Subject: Q1.5: What's Genetic Programming (GP)?
  1007.  
  1008.      GENETIC PROGRAMMING is the extension of the genetic model of learning
  1009.      into  the space of programs. That is, the objects that constitute the
  1010.      POPULATION  are  not  fixed-length  character  strings  that   encode
  1011.      possible  solutions  to  the problem at hand, they are programs that,
  1012.      when executed, "are" the candidate solutions to  the  problem.  These
  1013.      programs  are expressed in genetic programming as parse trees, rather
  1014.      than as lines of code.  Thus, for example, the simple program "a +  b
  1015.      * c" would be represented as:
  1016.  
  1017.          +
  1018.         / \
  1019.         a  *
  1020.          / \
  1021.          b  c
  1022.  
  1023.      or,  to  be  precise,  as suitable data structures linked together to
  1024.      achieve this effect. Because this is a very simple thing to do in the
  1025.      programming language Lisp, many GPers tend to use Lisp. However, this
  1026.      is simply an implementation detail. There are straightforward methods
  1027.      to implement GP using a non-Lisp programming ENVIRONMENT.
  1028.  
  1029.      The  programs  in  the  POPULATION  are composed of elements from the
  1030.      FUNCTION SET and the TERMINAL SET, which are typically fixed sets  of
  1031.      symbols selected to be appropriate to the solution of problems in the
  1032.      domain of interest.
  1033.  
  1034.      In GP the CROSSOVER  operation  is  implemented  by  taking  randomly
  1035.      selected  subtrees in the INDIVIDUALs (selected according to FITNESS)
  1036.      and exchanging them.
  1037.  
  1038.      It should be pointed out that GP usually does not use any MUTATION as
  1039.      a GENETIC OPERATOR.
  1040.  
  1041. ------------------------------
  1042.  
  1043. End of ai-faq/genetic/part2
  1044. ***************************
  1045.